package com.youlu.campus.monitor.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 微信监控实体类
 * 对应MongoDB中的wechat_monitor集合
 *
 * @author su
 * @date 2025/09/02
 */
@Data
@Document(collection = "wechat_monitor") // 显式指定集合名，与MongoDB语句一致
public class WechatMonitor implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * MongoDB主键（对应语句中的_id）
     * 注意：MongoDB默认ObjectId类型，此处用String接收（Spring Data MongoDB会自动转换）
     */
    @Id
    private String id;

    /**
     * 任务名称
     */
    @Indexed(unique = true)
    private String name;

    /**
     * 微信名称（对应语句中的name）
     */
    private String wechatName;

    /**
     * 类型（对应语句中的type，如group）
     */
    private String type;

    /**
     * 活动ID（对应语句中的activityId）
     */
    private String activityId;

    /**
     * 排除的用户名 多个 逗号 , 分割
     */
    private String excludeUsers;

    /**
     * 监控星期几 *表示每天 多个 , 逗号分割
     */
    private String weekday;

    /**
     * 监控开始时间
     */
    private LocalTime startTime;

    /**
     * 结束开始时间
     */
    private LocalTime endTime;

    /**
     * 启动状态
     */
    private Boolean enable = false;

    /**
     * 触发关键词 多个用 , 分割
     */
    private String keywords;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;
}